package com.john.booter.module.file.service;

import java.util.List;

import com.john.booter.domain.entity.File;
import com.john.booter.exception.FileOptionException;

public interface FileService {
	
	/**
	 * 临时保存
	 * @param file
	 */
	void saveTemp(File file); 
	/**
	 * 保存
	 * @param file
	 */
	void save(File file);
	/**
	 * 根据id获取资源文件
	 * @param id 资源文件id
	 * @return
	 */
	File findById(String id);
	
	/**
	 * 获取资源文件在系统中的物理路径
	 * @param fileName
	 * <pre>
     * a/b/c.jpg 
     * a.jpg     
     * </pre>
     * <p>
	 * @return
	 */
	String getPhysicalPath(String fileName);
	
	/**
	 * 富文本编辑器<code>保存</code>时的文件处理
	 * @param content 富文本编辑器对应的字段值
	 * @return TODO
	 * @throws FileOptionException
	 */
	List<File> saveEditorContentFile(String content) throws FileOptionException; 
	/**
	 * 富文本编辑器<code>更新</code>时的文件处理
	 * @param content 新的content
	 * @param oldContent 原有的content
	 * @return 
	 * @throws FileOptionException
	 */
	List<File> updateEditorContentFile(String content, String oldContent) throws FileOptionException;
	/**
	 * 清理未与内容关联的临时文件
	 */
	void clearTempFiles();
	
}
